#coding=utf-8
import pygame
from pygame.sprite import Sprite


class Bullet(Sprite):
    '''对飞船子弹管理的类'''
    def __init__(self, setting, screen, ship):
        '''创建一个子弹对象'''
        super(Bullet, self).__init__()
        self.screen = screen

        #在（0,0）处创建一个子弹，再设置到飞船的头部，初始设置
        #Rect函数是要大写开头的
        self.rect = pygame.Rect(0, 0, setting.bullet_width,
                                setting.bullet_height)
        self.rect.centerx = ship.rect.centerx
        self.rect.top = ship.rect.top

        #用小数储存子弹位置
        #y=rect.top   x=rect.left
        self.y = float(self.rect.y)

        self.color = setting.bullet_color
        self.speed_factor = setting.bullet_speed_factor

    def update(self):  #数据更新
        '''向上移动子弹'''
        #更新子弹Y轴位置的小数值
        self.y -= self.speed_factor
        #更新子弹Y轴的实际位置
        self.rect.y = self.y

    def draw_bullet(self):  #显示更新
        '''在屏幕上绘制子弹'''
        pygame.draw.rect(self.screen, self.color, self.rect)

